// fxobj.txt 

// Like a basic talking object, but it also creates sparkels on itself
// Cell 3 - floater value
	// floater values:
	// 0 - stationary
	// 1 - floats slowly into air
	// 2 - starts high in air, drifts down
	// 3 - starts high in air, drifts down, drawn as addover
// Cell 4,5 - The sdf to see if sparkels and cbe or not

beginobjectscript; // talking object

variables;

short num_fx = 6;
short sparkles = 1;
short poof = 0;
short cur_tick;

body;

beginstate INIT_STATE;
	cur_tick = get_current_tick();

break;

beginstate DEAD_STATE;
	break;
	
beginstate START_STATE; 
	if ((get_memory_cell(4) > 0) || (get_memory_cell(5) > 0)) {
		if (get_sdf(get_memory_cell(4),get_memory_cell(5)) == 0) 
			sparkles = 1;
			else sparkles = 0;
		}
	if (poof > 0)
		sparkles = 0;
		
	if ((get_ran(1,0,100) < 20) && (sparkles > 0))
		run_sparkles_on_object(ME,22,num_fx,get_memory_cell(3));
	if ((sparkles) && (dist_to_pc() <= 15) && (cur_tick != get_current_tick())) {
		cur_tick = get_current_tick();
		create_missile_spiral(158,2,4,2);
		}	

	if ((sparkles) && (dist_to_pc() <= 4) && (gf(6,9) == 0)) {
		poof = 1;
		run_sparkles_on_object(ME,177,1,4);
		pc_heard_sound(240); 
		
		if (get_memory_cell(5) == 16) {	
			set_terrain(6,3,91 + get_ran(1,0,1));
			set_terrain(8,3,91 + get_ran(1,0,1));
			set_terrain(10,3,91 + get_ran(1,0,1));
			set_attitude(36,10);
			set_attitude(37,10);
			set_attitude(38,10);
			}
		if (get_memory_cell(5) == 17) {	
			set_terrain(26,12,91 + get_ran(1,0,1));
			set_terrain(25,14,91 + get_ran(1,0,1));
			set_terrain(25,16,91 + get_ran(1,0,1));
			set_terrain(24,18,91 + get_ran(1,0,1));
			set_attitude(39,10);
			set_attitude(40,10);
			set_attitude(41,10);
			set_attitude(42,10);
			}
		if (get_memory_cell(5) == 18) {	
			set_terrain(4,4,91 + get_ran(1,0,1));
			set_terrain(4,6,91 + get_ran(1,0,1));
			set_terrain(4,8,91 + get_ran(1,0,1));
			set_attitude(43,10);
			set_attitude(44,10);
			set_attitude(45,10);
			}
		if (get_memory_cell(5) == 19) {	
			set_terrain(14,11,91 + get_ran(1,0,1));
			set_terrain(17,12,91 + get_ran(1,0,1));
			set_terrain(15,15,91 + get_ran(1,0,1));
			set_terrain(12,14,91 + get_ran(1,0,1));
			set_attitude(46,10);
			set_attitude(47,10);
			set_attitude(48,10);
			set_attitude(49,10);
			}
		if (get_memory_cell(5) == 20) {	
			set_terrain(3,14,91 + get_ran(1,0,1));
			set_terrain(3,16,91 + get_ran(1,0,1));
			set_terrain(3,18,91 + get_ran(1,0,1));
			set_terrain(4,20,91 + get_ran(1,0,1));
			set_attitude(50,10);
			set_attitude(51,10);
			set_attitude(52,10);
			set_attitude(53,10);
			}
		if (get_memory_cell(5) == 21) {	
			set_terrain(3,42,91 + get_ran(1,0,1));
			set_terrain(5,42,91 + get_ran(1,0,1));
			set_terrain(7,42,91 + get_ran(1,0,1));
			set_attitude(54,10);
			set_attitude(55,10);
			set_attitude(56,10);
			}
		
		print_str_color("You hear a hiss and a click. A control switch on",2);
		print_str_color("  a nearby piece of machinery moves on its own.",2);
		if (gf(6,15) == 0) {
			sf(6,15,1);
			begin_talk_mode(22);
			}
		}

		
	break;
	
beginstate USE_STATE;
	begin_talk_mode(21);
break;
